.TH xfs_admin 8
.SH NAME
xfs_admin \- change parameters of an XFS filesystem
.SH SYNOPSIS
.B xfs_admin
[
.B \-eflpu
] [
.BI \-O " featurelist"
] [
.BR "\-c 0" | 1
] [
.B \-L
.I label
] [
.B \-U
.I uuid
] [
.B \-r
.I rtdev
]
.I device
[
.I logdev
]
.br
.B xfs_admin \-V
.SH DESCRIPTION
.B xfs_admin
uses the
.BR xfs_db (8)
command to modify various parameters of a filesystem.
.PP
Devices that are mounted cannot be modified.
Administrators must unmount filesystems before
.BR xfs_admin " or " xfs_db (8)
can convert parameters.
A number of parameters of a mounted filesystem can be examined
and modified using the
.BR xfs_growfs (8)
command.
.PP
The optional
.B logdev
parameter specifies the device special file where the filesystem's external
log resides.
This is required only for filesystems that use an external log.
See the
.B mkfs.xfs \-l
option, and refer to
.BR xfs (5)
for a detailed description of the XFS log.
.SH OPTIONS
.TP
.B \-e
Enables unwritten extent support on a filesystem that does not
already have this enabled (for legacy filesystems, it can't be
disabled anymore at mkfs time).
.IP
This option only applies to the deprecated V4 format.
.TP
.B \-f
Specifies that the filesystem image to be processed is stored in a
regular file at
.I device
(see the
.B mkfs.xfs \-d
.I file
option).
.TP
.B \-j
Enables version 2 log format (journal format supporting larger
log buffers).
.IP
This option only applies to the deprecated V4 format.
.TP
.B \-l
Print the current filesystem label.
.TP
.B \-p
Enable 32bit project identifier support (PROJID32BIT feature).
.IP
This option only applies to the deprecated V4 format.
.TP
.B \-u
Print the current filesystem UUID (Universally Unique IDentifier).
.TP
.BR "\-c 0" | 1
Enable (1) or disable (0) lazy-counters in the filesystem.
.IP
Lazy-counters may not be disabled on Version 5 superblock filesystems
(i.e. those with metadata CRCs enabled).
.IP
In other words, this option only applies to the deprecated V4 format.
.IP
This operation may take quite a bit of time on large filesystems as the
entire filesystem needs to be scanned when this option is changed.
.IP
With lazy-counters enabled, the superblock is not modified or logged on
every change of the free-space and inode counters. Instead, enough
information is kept in other parts of the filesystem to be able to
maintain the counter values without needing to keep them in the
superblock. This gives significant improvements in performance on some
configurations and metadata intensive workloads.
.TP
.BI \-L " label"
Set the filesystem label to
.IR label .
XFS filesystem labels can be at most 12 characters long; if
.I label
is longer than 12 characters,
.B xfs_admin
will truncate it and print a warning message.
The filesystem label can be cleared using the special "\c
.B \-\-\c
" value for
.IR label .
.TP
.BI \-O " feature1" = "status" , "feature2" = "status..."
Add or remove features on an existing V5 filesystem.
The features should be specified as a comma-separated list.
.I status
should be either 0 to disable the feature or 1 to enable the feature.
Note, however, that most features cannot be disabled.
.IP
.B NOTE:
Administrators must ensure the filesystem is clean by running
.B xfs_repair -n
to inspect the filesystem before performing the upgrade.
If corruption is found, recovery procedures (e.g. reformat followed by
restoration from backup; or running
.B xfs_repair
without the
.BR -n )
must be followed to clean the filesystem.
.IP
Supported features are as follows:
.RS 0.7i
.TP 0.4i
.B inobtcount
Keep a count the number of blocks in each inode btree in the AGI.
This reduces mount time by speeding up metadata space reservation calculations.
The filesystem cannot be downgraded after this feature is enabled.
Once enabled, the filesystem will not be writable by older kernels.
This feature was added to Linux 5.10.
.TP 0.4i
.B bigtime
Upgrade a filesystem to support larger timestamps up to the year 2486.
The filesystem cannot be downgraded after this feature is enabled.
Once enabled, the filesystem will not be mountable by older kernels.
This feature was added to Linux 5.10.
.TP 0.4i
.B nrext64
Upgrade a filesystem to support large per-inode extent counters. The maximum
data fork extent count will be 2^48 - 1, while the maximum attribute fork
extent count will be 2^32 - 1. The filesystem cannot be downgraded after this
feature is enabled. Once enabled, the filesystem will not be mountable by
older kernels.  This feature was added to Linux 5.19.
.TP 0.4i
.B exchange
Upgrade a filesystem to support atomic file content exchanges through the
XFS_IOC_EXCHANGE_RANGE ioctl, and to support online repairs of directories,
extended attributes, symbolic links, and realtime free space metadata.
The filesystem cannot be downgraded after this feature is enabled.
Once enabled, the filesystem will not be mountable by older kernels.
.RE
.TP
.BI \-U " uuid"
Set the UUID of the filesystem to
.IR uuid .
A sample UUID looks like this: "c1b9d5a2-f162-11cf-9ece-0020afc76f16".
The
.I uuid
may also be
.BR nil ,
which will set the filesystem UUID to the null UUID.
The
.I uuid
may also be
.BR generate ,
which will generate a new UUID for the filesystem.  Note that on CRC-enabled
filesystems, this will set an incompatible flag such that older kernels will
not be able to mount the filesystem.  To remove this incompatible flag, use
.BR restore ,
which will restore the original UUID and remove the incompatible
feature flag as needed.
.TP
.BI \-r " rtdev"
Specifies the device special file where the filesystem's realtime section
resides.
Only for those filesystems which use a realtime section.
.TP
.B \-V
Prints the version number and exits.
.PP
The
.BR mount (8)
manual entry describes how to mount a filesystem using its label or UUID,
rather than its block special device name.
.SH SEE ALSO
.BR mkfs.xfs (8),
.BR mount (8),
.BR xfs_db (8),
.BR xfs_growfs (8),
.BR xfs_repair (8),
.BR xfs (5).
